Handheld pointer device and pointer positioning method thereof

ABSTRACT

A pointer positioning method for a handheld pointer device includes: capturing a first frame containing a reference point when the handheld pointer device updates a first tilt angle presently used to a second tilt angle; computing a first pointing coordinate according to the image position of the reference point in the first frame and the first tilt angle; computing a second pointing coordinate according to the image position of the reference point in the first frame and the second tilt angle; capturing a second frame containing the reference point to compute a third pointing coordinate according to the image position of the reference point in the second frame and the second tilt angle; generating a cursor parameter for controlling a display position of a cursor on a display apparatus according to the first pointing coordinate, the second pointing coordinate, and the third pointing coordinate.

This U.S. Non-provisional application is a continuation-in-Part ofapplication Ser. No. 13/771,072, filed Feb. 19, 2013, now statuspending, and entitled “Hand-Held Pointing Device”, and acontinuation-in-Part of application Ser. No. 14/273,523, filed May 8,2014, now status pending, and entitled “Handheld Pointer Device And TiltAngle Adjustment Method Thereof”. The disclosures of all of theforegoing applications are incorporated by reference herein in theirentirety.

This U.S. Non-provisional application further claims the priority toTaiwan patent application No. 102144801, filed Dec. 6, 2013, entitled“Pointer Device And Pointer Positioning Method Thereof”. The entirespecification of which is hereby incorporated by reference in itsentirety for all purposes.

BACKGROUND

1. Technical Field

The present disclosure relates to a positioning method of a pointerdevice in particular, to a pointer positioning method of a handheldpointer device.

2. Description of Related Art

A handheld pointer device is operable to compute pointing coordinatesthereof by analyzing image positions of at least one reference lightsource formed in images captured and to transmit pointing coordinatescomputed to a video game console for assisting gaming process executedon the video game console. Currently, handheld pointer devices have beenwidely used in many types of interactive gaming systems such as lightgun games, baseball games, tennis games, and the like.

It is well known in the art the that the distance between an imagesensor installed on a handheld pointer device and a display apparatusand the rotation angle of the image sensor while capturing the imagesaffect the computation of pointing coordinates thereafter. Hence, toenhance user's operability, a handheld pointer device is typicallyequipped with at least one tilt sensing device for constantly detectingthe instant rotation angle of the handheld pointer device andcorrespondingly updating the tilt angle used in calculation of pointingcoordinates. The relative movement of the handheld pointer device withrespective to the position of the reference light source thus can beaccurately computed and determined, thereby avoid erroneous positiondetermination of the reference point.

However, whenever the handheld pointer device updates the tilt anglepresently used in the computation of pointing coordinate, the handheldpointer device will instantly compute the pointing coordinate using thenewly updated tilt angle and the image position of the reference lightsource in the sensing area of the image sensor computed and control themovement of the cursor, accordingly. As a result, cursor displayed onthe display apparatus would suddenly jump from one place to another, andreduce user's operability, at same time, increases operationinconvenience.

SUMMARY

Accordingly, an exemplary embodiment of the present disclosure provide apointer positioning method for a handheld pointer device, and thepointer positioning method can cause the handheld pointer device toautomatically compensate and correct pointing coordinates computed basedon the displacement generated as the handheld pointer device updated thetilt angle thereof, thereby effectively avoid the occurrence of havingthe cursor suddenly jumps from one place to another and increases theuser's operation with the handheld pointer device.

An exemplary embodiment of the present disclosure provides a pointerpositioning method of a handheld pointer device and the pointer positionmethod includes the following steps. When the handheld pointer deviceupdates a first tilt angle presently used to a second tilt angle,captures a first frame containing a reference point. Subsequently, afirst pointing coordinate is computed according to the image position ofthe reference point formed in the first frame and the first tilt angle.A second pointing coordinate is computed according to the image positionof the reference point formed in the first frame and the second tiltangle. Afterward, a second frame containing the reference point iscaptured. A third pointing coordinate is then computed according to theimage position of the reference point formed in the second frame and thesecond tilt angle. Thereafter, a cursor position according to the firstpointing coordinate, the second pointing coordinate, and the thirdpointing coordinate, so as to correspondingly generate a cursorparameter controlling a display position of a cursor on a displayapparatus.

An exemplary embodiment of the present disclosure provides a pointerpositioning method of a handheld pointer device and the pointer positionmethod includes the following steps. When the handheld pointer deviceupdates a first tilt angle presently used to a second tilt angle,captures a first frame containing a reference point. An angle differencebetween the first tilt angle and the second tilt angle is subsequentlycomputed. When the angle difference is computed to be larger than apreset angle, a first pointing coordinate is computed according to theimage position of the reference point formed in the first frame and thefirst tilt angle. At same time, a second pointing coordinate is computedaccording to the image position of the reference point formed in thefirst frame and the second tilt angle. Then, the handheld pointer deviceis driven to compute a cursor position of a cursor in the subsequentmovement of the handheld pointer device on the basis of a firstdisplacement vector computed between the first and the second pointingcoordinates along with the pointing coordinate generated in accordanceto the movement of the handheld pointer device. The handheld pointerdevice further generates a cursor parameter and correspondingly controlsa display position the cursor on a display apparatus.

An exemplary embodiment of the present disclosure provides a pointerpositioning method of a handheld pointer device, and the pointedpositioning method includes the following steps. At a first timeinterval, the handheld pointer device is driven to update a first tiltangle presently used to a second tilt angle. The handheld pointer devicecomputes a first pointing coordinate and a second point coordinateaccording to the image position of the reference point in a first framewith the first tilt angle and the second tilt angle, respectively. At asecond time interval, the handheld pointer device is driven to compute athird pointing coordinate according to the image position of thereference point formed in a second frame captured and the second tiltangle. The second time interval occurs after the first time interval.The cursor position of a cursor is then computed according to the firstpointing coordinate, the second pointing coordinate, and the thirdpointing coordinate to generate a cursor parameter for controlling adisplay position of the cursor on a display apparatus, accordingly.

An exemplary embodiment of the present disclosure provides a handheldpointer device. The handheld pointer device includes an image capturingunit, an accelerometer unit, and a processing unit. The image capturingunit is configured to operatively capture a plurality of imagescorresponding to the position of a reference point and sequentiallygenerate a plurality of frames. The accelerometer unit is configured tooperatively detect a plurality of accelerations of the handheld pointerdevice over multiple axes for generating an acceleration vector. Theprocessing unit is coupled to the image capturing unit and theaccelerometer unit. The processing unit is configured to operativelycompute a cursor position of a cursor according to the image positionsof the reference points in the frames and a first tilt angle.

When the processing unit updates the first tilt angle presently used inthe cursor position computation to a second tilt angle according to theplurality of accelerations detected, the processing unit operativelydrives the image capturing unit to capture a first frame containing thereference point. The processing unit then respectively computes a firstpointing coordinate and a second pointing coordinate using the first andthe second tilt angles in coordination with the image position of thereference point formed in the first frame. The processing unit drivesthe image capturing unit to capture a second frame containing thereference point thereafter. Afterward, the processing unit computes thecursor position according to the image position of the reference framein the second frame, the first pointing coordinate, the second pointingcoordinate, to correspondingly generate a cursor parameter forcontrolling a display position of the cursor on a display apparatus.

An exemplary embodiment of the present disclosure provides anon-transitory computer-readable media, for storing a computerexecutable program for the aforementioned pointer positioning method.When the non-transitory computer readable recording medium is read by aprocessor, the processor executes the aforementioned pointer positioningmethod.

To sum up, exemplary embodiments provide a handheld pointer device and apointer positioning method thereof. The handheld pointer device and thepointer positioning method thereof area are adapted for controlling theoperation of a cursor displayed on a display apparatus. The pointerpositioning method operatively calibrate and correct pointingcoordinates during the computation of cursor position after the handheldpointer device updated the tilt angle thereof in such a way that thedisplay position of the cursor can be adjusted to gradually move to theposition which the handheld pointer device actually point toward withina preset calibration time or a preset number of calibration.Accordingly, the issue of the cursor suddenly jump from one place toanother after the tilt angle has updated can be effectively avoid.Thereby, enhance the stability of the handheld pointer device and at thesame time, increase the operation convenience and of the user as well.

In order to further understand the techniques, means and effects of thepresent disclosure, the following detailed descriptions and appendeddrawings are hereby referred, such that, through which, the purposes,features and aspects of the present disclosure can be thoroughly andconcretely appreciated; however, the appended drawings are merelyprovided for reference and illustration, without any intention to beused for limiting the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are included to provide a furtherunderstanding of the present disclosure, and are incorporated in andconstitute a part of this specification. The drawings illustrateexemplary embodiments of the present disclosure and, together with thedescription, serve to explain the principles of the present disclosure.

FIG. 1 is a diagram illustration an operation of a handheld pointerdevice in an interactive system provided in accordance to an exemplaryembodiment of the present disclosure.

FIG. 2 is a block diagram of a handheld pointer device provided inaccordance to an exemplary embodiment of the present disclosure.

FIG. 3 is a flowchart diagram illustrating a pointer positioning methodof a handheld pointer device provided in accordance to an exemplaryembodiment of the present disclosure.

FIG. 4A˜4B are diagrams respectively illustrating image positions of thereference point detected as the handheld pointer device moves providedin accordance to an exemplary embodiment of the present disclosure.

FIG. 4C is a diagram illustrating the image positions of the referencepoint computed using different tilt angle provided in accordance to anexemplary embodiment of the present disclosure.

FIG. 4D is a diagram illustrating the image position of the referencepoint detected as the handheld pointer device moves and thecorrespondingly movement of the cursor displayed on a display apparatusprovided in accordance to an exemplary embodiment of the presentdisclosure.

FIG. 5 is a diagram illustrating the movement of the cursor displayed ona display apparatus provided in accordance to an exemplary embodiment ofthe present disclosure.

FIG. 6 is a flowchart diagram illustrating a method for calibrating thecursor position after the update of tilt angle provided in accordance toan exemplary embodiment of the present disclosure.

FIG. 7 is a diagram illustrating the movement of the cursor displayed ona display apparatus along with the movement of a handheld pointer deviceprovided in accordance to an exemplary embodiment of the presentdisclosure.

FIG. 8 is a flowchart diagram illustrating a pointer positioning methodof a handheld pointer device provided in accordance to another exemplaryembodiment of the present disclosure.

FIG. 9 is a flowchart diagram illustrating a pointer positioning methodof a handheld pointer device provided in accordance to another exemplaryembodiment of the present disclosure.

DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

Reference will now be made in detail to the exemplary embodiments of thepresent disclosure, examples of which are illustrated in theaccompanying drawings. Wherever possible, the same reference numbers areused in the drawings and the description to refer to the same or likeparts.

(An Exemplary Embodiment of a Handheld Pointer Device)

A handheld pointer device of the present disclosure can be adapted forpositioning a pointer (such as a cursor) on a display apparatus. Pleaserefer to FIG. 1, which shows a diagram illustration an operation of ahandheld pointer device in an interactive system provided in accordanceto an exemplary embodiment of the present disclosure. An interactivesystem of the instant embodiment includes a handheld pointer device 10and a display apparatus 20. The display apparatus 20 is equipped with atleast one reference point 21, which is provided to the handheld pointerdevice 10 to use as reference for controlling the movement of a cursor23 displayed on the display apparatus 20.

In the instant embodiment, the display apparatus 20 is configured tohave the necessary software and hardware architectures for executingdata and displaying software application. The display apparatus 20includes but not limited to a projection display, a game consoledisplay, a television, or a monitor of a computer system. In practice,depending upon the practical operational requirements of the interactivesystem, the interactive system can further include a host computer (notshown) such as video game console or a computer. The host computer canbe configured to operatively process the program codes associated with asoftware application (e.g., video games such as light gun games,baseball games, tennis games and the like) and execute the softwareapplication. The host computer further can be configured to display theexecution progress of the software application on the display apparatus20 for the user to view and perform the correspondingly controloperations.

The reference point 21 is placed near the display apparatus 20 and isprovided to the handheld pointer device 10 for determining the pointingposition thereof 10, i.e., determines the moving direction and thedisplacement of the handheld pointer device 10 relative to the referencepoint 21.

The reference point 21 can be implemented by a plurality of lightemitting diodes with specific wavelength, such as infrared lightemitting diodes (IR LED), laser diodes, or ultraviolet light emittingdiodes, arranged in a regular or irregular shape. Moreover, the lightemitting diodes may be configured to electrically connect to the displayapparatus 20 or may be powered by an independent power source forlighting. It shall be noted that the number of the reference point isnot limited to one as used in the instant embodiment. Those skilled inthe art should be able to configure the exact number of the referencepoint 21 required to be one, two, or more than two according to thepractical design and/or operational requirements. In other words, FIG. 1is merely used to illustrate an operation of the handheld pointer device10, and the instant disclosure is not limited thereto.

Briefly, the handheld pointer device 10 operatively drives an imagecapturing unit 11 installed thereon to capture images of the referencepoint 21 as the handheld pointer device 10 points toward the position ofthe reference point 21 and sequentially generates a plurality of framescontaining the image of the reference point 21. The handheld pointerdevice 10 operatively computes a pointing coordinate generated as thehandheld pointer device 10 points toward the display apparatus 20according to an image position of the reference point 21 formed in oneof the frames captured and the tilt angle presently used in the pointingcoordinate calculation. Next, the handheld pointer device 10 computesthe cursor position of the cursor 23 on the display apparatus 20according to the pointing coordinate computed. The handheld pointerdevice 10 further wirelessly transmits a cursor parameter generatedbased on the relative movement of the reference point 21 for controllingthe display position of the cursor 23 to the display apparatus 20. Thehandheld pointer device 10 thus controls the movement of the cursor 23displayed on the display apparatus 20.

The handheld pointer device 10 may further determine whether to update afirst tilt angle (i.e., the current rotation angle of the handheldpointer device 10) being presently used to a second tilt angle based onthe movement of image positions of the reference point 21 in framescaptured. In one embodiment, the handheld pointer device 10 may firstdetermine whether the handheld pointer device 10 is in motion or at restby determining whether or not the image position of the reference point21 formed in consecutive frames has substantially moved. The handheldpointer device 10 subsequently determines whether to update the tiltangle presently used in computing the pointing coordinate according tothe determination result. In another embodiment, the handheld pointerdevice 10 may also determine whether the handheld pointer device 10 isin motion or at rest by determining whether pointing coordinatescomputed based on the image positions of the reference point 21 formedin frames captured using the first tilt angle has substantially moved.The handheld pointer device 10 determines whether to update the tiltangle presently used in computing pointing coordinate according to thedetermination result thereafter.

It worth to note that the phrase of the reference point 21 hassubstantially moved herein indicates that the reference point 21 hasmoved over a short period of time (i.e., a second, a millisecond, twoadjacent frames, or multiple consecutive frames). Whether the referencepoint 21 has substantially moved can be determined by the positiondisplacement of the image position of the reference point 21 formed inconsecutive frames captured, or the velocity of the image position ofthe reference point 21 formed in the consecutive frames captured, or theacceleration of image position of the reference point 21 formed in theconsecutive frames captured, or the displacement, the velocity, or theacceleration of pointing coordinates computed based on consecutiveframes captured.

In one embodiment, the handheld pointer device 10 may use an inertialsensor to sense and compute the instant tilt angle of the handheldpointer device 10. However, the force exerted by the user onto thehandheld pointer device 10 while the user operates the handheld pointerdevice 10, might affect the gravitational direction determination resultdetected by the inertial sensor. Hence, the impact of the user on thehandheld pointer device 10 while the user operates the handheld pointerdevice 10 must be removed or eliminated in order to accurately computeand update the tilt angle of the handheld pointer device 10. Inparticular, when determines that the handheld pointer device 10 beingoperated by the user has not substantially moved (i.e., the referencepoint 21 detected has not substantially moved), the handheld pointerdevice 10 can be regarded as unaffected by the external force exertedthereon. The handheld pointer device 10 thus can accurately sense andcompute the instant rotation angle of the handheld pointer device 10,and update the first tilt angle presently used by the handheld pointerdevice 10 to the second tilt angle.

When the handheld pointer device 10 determines to update the first tiltangle presently used to the second tilt angle, the handheld pointerdevice 10 operatively captures a first frame containing the referencepoint 21. The handheld pointer device 10 computes a first pointingcoordinate relative to the display apparatus 20 according to the imageposition of the reference pointer 21 formed in the first frame and thefirst tilt angle. The handheld pointer device 10 further computes thecursor position according to the first pointing coordinate computed tocorrespondingly generate the cursor parameter for controlling thedisplay position of the cursor 23 on the display apparatus 20.

The handheld pointer device 10 then computes a second pointingcoordinate relative to the display apparatus 20 according to the imageposition of the reference pointer 21 formed in the first frame and thesecond tilt angle. Thereafter, in the subsequent computation of a thirdpointing coordinate, the handheld pointer device 10 operativelydetermines whether or not to perform a cursor position calibrationprocess to calibrate and correct the third pointing coordinate computedaccording to the displacement vector between the first and the secondpointing coordinates (i.e., the displacement of the cursor 23) duringthe computation of a third pointing coordinate according to the imageposition of the reference pointer 21 formed in the first frame and thesecond tilt angle.

When the handheld pointer device 10 determines that the displacementvector between the first and the second pointing coordinates is computedto be greater than or equal to a first predetermined threshold, thehandheld pointer device 10 operatively corrects the third pointingcoordinate for compensating the offset generated as the handheld pointerdevice 10 updates the tilt angle thereof. More specifically, thehandheld pointer device 10 computes a cursor position according to thefirst pointing coordinate, the second pointing coordinate, and the thirdpointing coordinate, so as to correspondingly generate the cursorparameter for controlling the display position of the cursor 23 on thedisplay apparatus 20. On the other hand, when the handheld pointerdevice 10 determines that the displacement vector between the first andthe second pointing coordinates is computed to be less than the firstpredetermined threshold, the handheld pointer device 10 directlycomputes the cursor position according to the third pointing coordinatewithout apply any compensation and correspondingly generate the cursorparameter to control the display position of the cursor 23 on thedisplay apparatus 20.

Accordingly, the occurrence that the cursor 23 suddenly jumps from oneplace to another after the operation of updating the tilt anglenegatively affecting the user's operation with handheld pointer device10 can be effectively prevented or eliminated.

In another embodiment, the handheld pointer device 10 can also determinewhether to calibrate and correct the pointing coordinate computed usingthe updated tilt angle (i.e. the second tilt angle) according to theangle difference between the first tilt angle and the second tilt angle.

For instance, the handheld pointer device 10 calibrates and corrects thepointing coordinate (i.e., the third pointing coordinate) computed inthe subsequent cursor position computation using the updated tilt anglewhen the angle difference between the first tilt angle presently usedand the second tilt angle is computed to be larger than a preset angle.

When the handheld pointer device 10 has determined to compensatepointing coordinates computed after the operation of updating the firsttilt angle to the second tilt angle, the handheld pointer device 10completes a cursor position calibration within a preset calibration timeor preset number of calibration and causes the cursor 23 to smoothlymove from the movement path that corresponds to the first tilt angle tothe movement path that corresponds to the second tilt angle. Thehandheld pointer device 10 thus can accurately compute the relativemoving information of the handheld pointer device 10 with respect to thedisplay apparatus 20 and precisely control the movement of the cursor 23on the display apparatus 20, at the same time prevent user's operationwith the handheld pointer device 10 from being affected by the tiltangle update.

It is worth to note that the handheld pointer device 10 is operable todetermine whether to calibrate and correct the pointing coordinatecomputed using the updated tilt angle after each tilt angle update(i.e., configure the first predetermined threshold and the preset angle)as well as the associated calibration and compensation method (i.e., theamount of compensation in each calibration and the preset calibrationtime) according to the type of the software program executed by thedisplay apparatus 20 as well as the resolution of the display apparatus20.

To put it concretely, the handheld pointer device 10 can pre-storemultiple sets of calibration parameter associated with differentresolutions of the display apparatus 20 and the type of softwareapplication.

For instance, when the type of the software application currentlyexecuted by the display apparatus 20 requires high precision (such asdisplaying rapid motion images), then the value of the firstpredetermined threshold or the value of the preset angle should beconfigured to be relatively small, such that the handheld pointer device10 executes a calibration program and calibrates pointing coordinateafter each tilt angle updates, so as to increase the directivity of thehandheld pointer device 10.

For another instance, when the type of the software applicationcurrently executed by the display apparatus 20 does not require highprecision (such as displaying still images), then the value of the firstpredetermined threshold or the value of the preset angle should beconfigured to be relatively larger such that the handheld pointer device10 does not have to calibrate the pointing coordinate after each tiltangle update, or does not have to execute the calibration program ofpointing coordinate after each tilt angle adjustment, and reduces thenumber of calibration needed, thereby reduces the computationalcomplexity of the pointing coordinates.

In one implementation, the handheld pointer device 10 can automaticallylink with the display apparatus 20 at start up and access the type ofthe software application currently executed on the display apparatus 20.Then, the handheld pointer device 10 operatively determines whether tocalibrate and correct pointing coordinates computed by the handheldpointer device 10 after tilt angle update based on the type of thesoftware program currently executed on the display apparatus 20, andselects the appropriate calibration parameters. Accordingly, theapplicability and operation convenience of the handheld pointer device10 can be enhanced.

More specifically, please refer to FIG. 2 in conjunction with FIG. 1,wherein FIG. 2 shows a block diagram of a handheld pointer deviceprovided in accordance to an exemplary embodiment of the presentdisclosure. The handheld pointer device 10 includes an image capturingunit 11, an accelerometer unit 12, a processing unit 13, an input unit14, a memory unit 15, and a communication unit 16. The image capturingunit 11, the accelerometer unit 12, the input unit 14, the memory unit15, and the communication unit 16 are coupled to the processing unit 13,respectively.

It is worth to note that, in another embodiment, the accelerometer unit12 can be integrated with the image capturing unit 11. In particular,the accelerometer unit 12 is electrically connected to the processingunit 13 through the image capturing unit 11. Alternatively, in otherembodiments, at least one of the image capturing unit 11, theaccelerometer unit 12, the input unit 14, the memory unit 15, and thecommunication unit 16 and another component thereof may be configured toelectrically connect the processing unit 13 in series.

The image capturing unit 11 is configured to operatively capture imagescontaining the reference point 21 as the handheld pointer device 10pointing toward the reference point 21 and sequentially generate aplurality of frames. Specifically, the image capturing unit 11 can beconfigured to operatively detect the light emitted from the referencepoint 21 according to a frame capturing rate (for example, 200 framesper second), and sequentially generates a plurality of frames containingthe image of the reference point 21.

An optical filter (not shown) can be used for filtering out lightspectrum outside the specific light spectrum generated by the referencepoint 21 such that the image capturing unit 11 only detects the lighthaving wavelength within the specific light spectrum generated by thereference point 21.

In the instant embodiment, the image capturing unit 11 can beimplemented by a charge-coupled device (CCD) image sensor or acomplementary metal oxide semiconductor (CMOS) image sensor. Thoseskilled in the art should be able to design and implement the imagecapturing unit 11 according to practical operation requirements, and theinstant embodiment is not limited to the example provided herein.

The accelerometer unit 12 is configured to detect a plurality ofaccelerations of the handheld pointer device 10 over multiple axes(e.g., X-axis, Y-axis, and Z-axis) of a space, and generate anacceleration vector, accordingly. The accelerometer unit 12 in theinstant embodiment includes but not limited to a G-sensor or anaccelerometer, and the accelerometer unit 12 can be built-in in thehandheld pointer device 10. Certainly, in other embodiments, theaccelerometer unit 12 may be implemented by an external device connectedto the handheld pointer device 10. Those skilled in the art should beable to implement the accelerometer unit 12 according to the practicaloperation and/or design requirements and the instant present disclosureis not limited to the example provided herein.

The processing unit 13 is configured to receive frames outputted by theimage capturing unit 11 and compute an image position of the referencepoint 21 formed in one of the frames according to the respective frameamong the frames captured. The processing unit 13 operatively computesthe pointing coordinate of the handheld pointer device 10 withrespective to the position of the reference point 21 using the firsttilt angle. The processing unit 13 further computes the cursor positionbased on the pointing coordinate computed, so as to correspondinglygenerate the cursor parameter controlling the movement (i.e., thedisplay position) of the cursor. Thereafter, the processing unit 13drives the communication unit 16 and wirelessly transmits the cursorparameter to the display apparatus 20 to correspondingly control themovement of the cursor 23 displayed on the display apparatus 20 incoordination with the execution of the software program on the displayapparatus 20.

More specifically, the processing unit 13 can operatively determinewhether the reference point 21 has moved based on frames captured, i.e.,whether the image position of the reference point 21 has substantiallymoved. When the processing unit 13 determines that the reference point21 has not substantially moved, the processing unit 13 instantly readsthe accelerations of the handheld pointer device 10 over multiple axesdetected by the accelerometer unit 12. The processing unit 13 computesand updates the first tilt angle presently used to the second tilt angleaccording to the accelerations of the handheld pointer device 10detected. The processing unit 13 then uses the second tilt angle updatedand the image position of the reference point 21 formed in one of theframes to compute the pointing coordinate of the handheld pointer device10 relative to the display apparatus 20.

In one embodiment, the processing unit 13 can compute the instant tiltangle of the handheld pointer device 10 using the accelerations of thehandheld pointer device 10 over X-axis, Y-axis, and Z-axis detected bythe accelerometer unit 12 and the included angles computed between anytwo axes, and update the first tilt angle to the second tilt angle,accordingly.

On the contrary, when the processing unit 13 determines that theposition of the reference point 21 has substantially moved, theprocessing unit 13 does not update the first tilt angle presently usedas the processing unit 13 operatively determines that the accelerometer13 is currently unable to made accurately acceleration measurementassociated with the handheld pointer device 10. The processing unit 13continues to use the first tilt angle and the image position of thereference point 21 formed in one of the frames to compute the pointingcoordinate of the handheld pointer device 10 relative to the displayapparatus 20. The processing unit 13 generates the cursor parameter forcontrolling the display position of the cursor 23 according to thepointing coordinate computed. The processing unit 13 then drives thecommunication unit 16 to wirelessly transmit the cursor parameter to thedisplay apparatus 20.

Algorithms used by the processing unit 13 for calculating the tilt angle(i.e., the first tilt angle, and the second tilt angle) of the handheldpointer device 10 will be briefly described in the following paragraphs.

In one embodiment, the plurality frames generated by the image capturingunit 11 are rectangular-shape. The long side of a frame is configured tobe parallel to the X-axis, and the short side of the frame is configuredto be parallel to the Y-axis. When the processing unit 13 determinesthat the reference point 21 has not substantially moved, the processingunit 13 reads the accelerations Vx, Vy, and Vz of the handheld pointerdevice 10 over the X-axis, Y-axis, and Z-axis of the three dimensionalspace depicted in FIG. 1 detected by the accelerometer unit 12. Theaccelerometer unit 12 operatively generates an acceleration vector Vaccording to the detection result, and generates an acceleration sensingsignal, accordingly. The acceleration sensing signal represents theratio of any two accelerations, such as the ratio of the acceleration Vxto the acceleration Vy. The processing unit 13 computes the instant tiltangle of the handheld pointer device 10 according to the accelerationsensing signal received.

Specifically, the processing unit 13 can compute the acceleration vectorV and the included angles between any two of axes by using the followingEqs. (1) to (3) and obtain the instant tilt angle of the handheldpointer device 10,

$\begin{matrix}{{\sin\;\theta_{x}} = \frac{{Vx}}{{gxy}}} & (1) \\{{\cos\;\theta_{y}} = \frac{{Vy}}{{gxy}}} & (2) \\{{{{gxy}} = \sqrt{{Vx}^{2} + {Vy}^{2}}},} & (3)\end{matrix}$wherein Vx represents the acceleration of the handheld pointer device 10over the X-axis detected by the accelerometer unit 12; Vy represents theacceleration of the handheld pointer device 10 over the Y-axis detectedby the accelerometer unit 12; |gxy| represents the gravitationalacceleration computed according to the acceleration Vx and theacceleration Vy.

The processing unit 13 subsequently corrects the orientation of theframes based on the computation result of Eq. (1) and Eq. (2) using Eq.(4), so that the coordinate system of the frame corrected is the same asthe coordinate system of the display apparatus 20,

$\begin{matrix}{{\begin{bmatrix}x^{\prime} \\y^{\prime}\end{bmatrix} = {\begin{bmatrix}{\cos\;(\theta)} & {{- \sin}\;(\theta)} \\{\sin\;\left( \theta \right.} & {\cos\;(\theta)}\end{bmatrix}\begin{bmatrix}x \\y\end{bmatrix}}},} & (4)\end{matrix}$wherein x represents the X-axis coordinate of the image position of thereference point 21 formed in one of the frames; y represents the Y-axiscoordinate of the image position of the reference point 21 formed in oneof the frames; x′ represents the X-axis coordinate of the image positionof the reference point 21 formed in one of the frames after orientationcorrection; y′ represents the adjusted Y-axis coordinate of the imageposition of the reference point 21 formed in one of the frames afterorientation correction. The processing unit 13 further computes thepointing coordinate of the handheld pointer device 10 relative to thereference point 21 or the display apparatus 20 according to X-axiscoordinate x′ and Y-axis coordinate y′ obtained after orientationcorrection.

Next, the processing unit 13 computes the cursor position according tothe pointing coordinate computed, so as to generate the cursor parameterto correspondingly control the movement of the cursor 23 on the displayapparatus 20. The processing unit 13 wirelessly transmits the cursorparameter or the relative movement information of the handheld pointerdevice 10 to the display apparatus 20 via the communication unit 16 tocorrespondingly control the display position of the cursor 23 on thedisplay apparatus 20.

It worth noting that those skilled in the art should understand that theaccelerometer unit 12 of the handheld pointer device 10 in the presentdisclosure can also be configured to only detect accelerations over twodimensions, such as the acceleration Vx and the acceleration Vy. Theabove described acceleration determination method for the handheldpointer device 10 is only an implementation and does not limit the scopeof the present disclosure. Additionally, computing the pointingcoordinate of the handheld pointer device 10 relative to the displayapparatus 20 according to the image position of one or more referencepoint formed in frames captured is known technique in the art and is notthe focus of the present disclosure, thus further descriptions arehereby omitted.

The input unit 14 is configured to enable a user of the handheld pointerdevice 10 configuring the frame capturing rate and the calibrationparameters, which includes but not limited to the calibration time, thenumber of calibrations, and the amount of compensation in eachcalibration. For instance, the user of the handheld pointer device 10may set the frame capturing rate according to a preset calibration timeand configure the number of calibrations according to the predeterminedframe capturing rate. For another instance, the user may also determineand set the number of calibrations based on the frame capturing rateconfigured. The frame capturing rate may be configured according to theframe refresh rate of the display apparatus 20.

The input unit 14 is configured to cause the display apparatus 20 todisplay a configuration or setting interface provided for the user toconfigure the calibration time, the frame capturing rate and/or thenumber of calibrations for correcting the cursor position. In practice,the input unit 14 may be implemented by a keypad interface, an opticalfinger navigation component, or a button and the present disclosure isnot limited thereto. In one embodiment, where the handheld pointerdevice 10 has a display screen (not shown), and the display screen canbe configured to show the calibration time, the frame capturing rate,the number of calibrations for correcting the cursor position, and theamount of compensation applied in each calibration. The display screenof the handheld pointer device 10 may be a touch screen.

The memory unit 15 can be configured to store operation parameters ofthe handheld pointer device 10 including but not limited to the firstpointing coordinate, the second pointing coordinate, the third pointingcoordinate, the first tilt angle, the second tilt angle, the firstpredetermined threshold, the preset angle, and the cursor parameter. Thememory unit 15 can be also configured to store the calibration time, theframe capturing rate and the number of calibrations for the cursoraccording to the operation of the handheld pointer device 10.

The processing unit 13 in the instant embodiment can be implemented by aprocessing chip such as a microcontroller or an embedded controllerprogrammed with necessary firmware, however the present disclosure isnot limited to the example provided herein. The memory unit 15 can beimplemented by a volatile memory chip or a nonvolatile memory chipincluding but not limited to a flash memory chip, a read-only memorychip, or a random access memory chip. The communication unit 16 can beconfigured to utilize Bluetooth technology and transmit the relativemovement information to the display apparatus 20, but the presentdisclosure is not limited thereto

It should be note that the internal components of the handheld pointerdevice 10 may be added, removed, adjusted or replaced according to thefunctional requirements or design requirements and the presentdisclosure is not limited thereto. That is, the exact type, exactstructure and/or implementation method associated with the imagecapturing unit 11, the accelerometer unit 12, the processing unit 13,the input unit 14, the memory unit 15, and the communication unit 16 maydepend upon the practical structure and the exact implementation methodadopted for the handheld pointer device 10 and the present disclosure isnot limited thereto.

The instant embodiment further provides a pointer positioning method forthe handheld pointer device 10 to illustrate the operation of thehandheld pointer device 10 in more detail. Please refer to FIG. 3 inconjunction with FIG. 1, 2, and FIG. 4A˜FIG. 4D. FIG. 3 shows aflowchart diagram illustrating a pointer positioning method of ahandheld pointer device provided in accordance to an exemplaryembodiment of the present disclosure. FIG. 4A˜4B are diagramsrespectively illustrating image positions of the reference pointdetected as the handheld pointer device moves provided in accordance toan exemplary embodiment of the present disclosure. FIG. 4C shows adiagram illustrating the image positions of the reference point computedusing different tilt angle provided in accordance to an exemplaryembodiment of the present disclosure. FIG. 4D shows a diagramillustrating the image position of the reference point detected as thehandheld pointer device moves and the correspondingly movement of thecursor displayed on a display apparatus provided in accordance to anexemplary embodiment of the present disclosure.

Initially, in Step S301, when the processing unit 13 of the handheldpointer device updates the first tilt angle θ1 presently used to thesecond tilt angle θ2, the processing unit 13 drives the image capturingunit 11 to capture and generate the first frame F1 containing thereference point 21.

It should be noted that the processing unit 13 can operatively determinewhether to update the first tilt angle θ1 presently used in the cursorposition computation to the second tilt angle θ2 by determining whetherthe image position of the reference point 21 formed corresponding to theposition of the reference point 21 in the multiple consecutive imagescaptured by the image capturing unit 11 has substantially moved.

Specifically, the processing unit 13 can operatively determine whetherto update the first tilt angle θ1 presently used in cursor positioncomputation to the second tilt angle θ2 according to frames containingthe reference point 21 captured and generated by the image capturingunit 11.

In one embodiment, the processing unit 13 operatively updates the firsttilt angle θ1 presently used in the cursor position computation to thesecond tilt angle θ2 upon determining that the position displacement ofthe image position of the reference point 21 formed in any twoconsecutive frames is less than a predefined displacement threshold(e.g., 1 pixel). In another embodiment, the processing unit 13operatively updates the first tilt angle θ1 presently used in the cursorposition computation to the second tilt angle θ2, upon determining thatthe velocity of the image position of the reference point 21 formed inthe any two consecutive frames is less than a predefined velocitythreshold (e.g., 1 pixel per unit time). In further another embodiment,the processing unit 13 may operatively update the first tilt angle θ1presently used in cursor position computation to the second tilt angleθ2, upon determining that the magnitude of the acceleration vector ofthe handheld pointer device 10 is equal to the gravitationalacceleration (g) of the handheld pointer device 10, wherein theacceleration vector is generated based on accelerations of the handheldpointer device 10 over multiple axes detected.

In other words, the processing unit 13 operatively reads accelerationsof the handheld pointer device 10 over multiple axes e.g., X-axis,Y-axis, and Z-axis) detected by the accelerometer unit 12 andcorrespondingly updates the first tilt angle θ1 presently used to thesecond tilt angle θ2 computed upon determining that the position of thereference point 21 sensed has not substantially moved (i.e., thehandheld pointer device 10 is at rest).

In Step S303, the processing unit 13 computes the first pointingcoordinate

based on the image position of the reference point 21 formed in thefirst frame F1 and the first tilt angle θ1. As shown in FIG. 4A, thefirst pointing coordinate

represents the pointing vector of the handheld pointer device 10relative to the display apparatus 20 in the first frame F1. The firstpointing coordinate

is represented by (x1, y1).

The processing unit 13 further computes the cursor position of thecursor 23 according to the first pointing coordinate

, so as to correspondingly generate the cursor parameter controlling thedisplay position of the cursor 23 on the display apparatus 20.Subsequently, the processing unit 13 drives the communication unit 16 towirelessly transmit the cursor parameter to the display apparatus 20 forcorrespondingly controlling the display position of the cursor 23 on thedisplay apparatus 20.

Incidentally, the computation of first pointing coordinate

is described as follow. The processing unit 13 first defines anoperating area 111 on the first frame F1 that corresponds to the displayapparatus 20 according to the center point “+” of the first frames F1and the image position of the reference point image 113 formed in thefirst frames F1. The operating area 111 corresponds to the screen of thedisplay apparatus 20 and is scaled with a predetermined display ratio.The processing unit 13 defines the operating area 111 in the first frameF1 by using the image position of the reference point image 113 as theorigin and scaled with the predetermined display ratio. The processingunit 13 further defines the center 1111 of the operating area 111 in thefirst frame F1. As such, the processing unit 13 may set the center 1111of the operating area 111 as the origin, apply Eqs (1)˜(4) along withthe first tilt angle θ1, and compute the pointing vector of the centerpoint “+” of the first frame F1 in the operating area 111 to obtain thefirst pointing coordinate

.

It is worth to note that it is not necessary to define the center 1111of the operating area to obtain the first pointing coordinate

, the processing unit 13 may also obtain the first pointing coordinate

by computing the rotation angle of the handheld pointer device 10. Therotation angle of the handheld pointer device 10 is computed directlyaccording to relationship between the center point “+” of the firstframes F1 and the image position of the reference point image 113 in thefirst frames F1 or the image feature of the reference point image 113.

The center point “+” in the instant embodiment represents the center ofthe image sensing array of the image capturing unit 11. Alternatively,the first pointing coordinate

represents the pointing vector of the center of the image sensing arrayof the image capturing unit 11 (i.e., the center point “+”) in the firstframe F1 with respect to the coordinate system of the display apparatus20 defined therein.

In Step S305, the processing unit 13 computes the second pointingcoordinate

based on the image position of the reference point 21 formed in thefirst frame F1 and the second tilt angle θ2.

As shown in FIG. 4B, the second pointing coordinate

represents the pointing vector computed by mapping the center of theimage sensing array of the image capturing unit 11 (i.e., the centerpoint “+”) onto the operating area 111 a which corresponds to the screenof the display apparatus 20 defined in the first frame F1. The secondpointing coordinate

is represented by (x2, y2). The processing unit 13 uses the center 1111a of the operating area 111 a as the origin and correspondingly computesthe pointing vector of the center point“+” of the first frame F1 in theoperating area 111 a so as to obtain the second pointing coordinate

and the second tilt angle θ2. The operating area 111 a is defined basedon the position of the reference point image 113 a.

As shown in FIG. 4C, the processing unit 13 subsequently computes thefirst displacement vector

associated with the pointing coordinate computed for the same frameafter the tilt angle adjustment using the first pointing coordinate

and the second pointing coordinate

. The processing unit 13 then stores the first displacement vector S1 inthe memory unit 15.

In Step S307, the processing unit 13 drives the image capturing unit 11to capture and generate the second frame F2 containing the referencepoint 21. The processing unit 13 computes the third pointing coordinate

based on the image position of the reference point 21 formed in thesecond frame F2 and the second tilt angle θ2. The second frame F2 iscaptured at a later time than the first frames F1. As shown in FIG. 4D,the third pointing coordinate

represents the pointing vector computed by mapping the center of theimage sensing array of the image capturing unit 11 (i.e., the centerpoint “+”) onto the operating area 111 b which corresponds to the screenof the display apparatus 20 defined in the second frame F2. The secondpointing coordinate

is represented by (x3, y3). The operating area 111 b is defined based onthe reference point image 113 b.

Subsequently, in Step S309, the processing unit 13 determines whether anangle difference θd between the first tilt angle θ1 and the second tiltangle θ2 is smaller than a preset angle (e.g., 20 degrees). When theprocessing unit 13 determines that the angle difference θd is smallerthan the preset angle, the processing unit 13 executes Step S313;otherwise, the processing unit 13 executes Step S311.

In Step S311, the processing unit 13 determines whether a firstdisplacement vector

between the first pointing coordinate

and the second pointing coordinate

is less than a first predetermined threshold (e.g., 10 pixels). When theprocessing unit 13 determines that the first displacement vector

is less than the first predetermined threshold (e.g., 10 pixels), theprocessing unit 13 executes Step S313; otherwise, the processing unit 13executes Step S315. The first predetermined threshold can be configuredaccording to the preset angle, e.g., set to a pixel value thatcorresponds to the angle difference of 20 degree.

In Step S313, the processing unit 13 computes the cursor positiondirectly according to the third pointing coordinate

. That is to say, when the processing unit 13 determined that both theangle difference θd is smaller than the preset angle and the firstdisplacement vector

is less than the first predetermined threshold, the processing unit 13does not compensate the third pointing coordinate

, instead, the processing unit 13 directly computes the cursor positionaccording to the third pointing coordinate

.

In Step S315, the processing unit 13 computes the cursor positionaccording to the first pointing coordinate

, the second pointing coordinate

, and the third pointing coordinate

. Particularly, the processing unit 13 first computes a compensatedthird pointing coordinate

according to the third pointing coordinate

and the first displacement vector

. Afterward, the processing unit 13 computes the cursor positionaccording to the compensated third pointing coordinate

for compensating the offset between the first pointing coordinate

and the second pointing coordinate

.

The compensated third pointing coordinate

can be computed using Eq. (5)

=

−

  (5)wherein,

represents the compensated third pointing coordinate;

represents the third pointing coordinate;

represents the first displacement vector.

In Step S317, the processing unit 13 generates the cursor parameter forcorrespondingly controlling the movement of the cursor 23 based on thecomputation result from either Step S313 or Step S315. The processingunit 13 subsequently drives the communication unit 16 to wirelesslytransmit the cursor parameter to the display apparatus 20 tocorrespondingly control the movement (i.e., the display position) of thecursor 23 on the display apparatus 20

It worth to note that as shown in FIG. 4D, since the third pointingcoordinate

lies within the operating area 111 of the first image frame F1, thedisplay apparatus 20 will correspondingly display the cursor 23 on thedisplay area of the screen shown thereon according to a display aspectratio configured for the display apparatus 20 upon receiving the cursorparameter. Specifically, when the handheld pointer device 10 transmitsthe cursor parameter for controlling the display position of the cursor23 along with the predetermined display ratio to the display apparatus20 with the communication unit 16, the display apparatus 20 operativelycomputes the display position of the cursor 23 and correspondinglypositions the cursor 23 on the screen shown by the display apparatus 20according to the current display aspect ratio (i.e., the resolution ofthe display apparatus 20). Those skilled in the art should be able toinfer the method of computing the display position of the cursor 23 onthe screen shown by the display apparatus 20 according to the currentdisplay aspect ratio and the cursor parameter, hence furtherdescriptions are hereby omitted.

It is worth to mention that as shown in FIG. 4A˜FIG. 4C, the referencepoint images 113, 113 a, and 113 b in the instant disclosure arerespectively represents by a circle, however the reference point images113, 113 a, and 113 b may also be represented by a cross-shaped or astar shaped symbol. The present disclosure is not limited to the exampleillustrated in FIG. 4A˜FIG. 4C. Additionally, if the interactive systemof FIG. 2 utilizes two or more reference points 21, then the imagepositions of the reference point images 113, 113 a and 113 b formed inthe frames can be configured to be the average-coordinate between/amongthe reference point images identified. Moreover, the processing unit 13further can compensate the computation of the image positions of thereference point images according to the preset image-forming parametersand the preset image-forming distance, so as to accurately determine theposition of the reference point image. Those skilled in the art shouldbe able to know the configuration of the preset image-forming parametersand the image forming distance as well as apply compensation to theimage positions of the reference point images 113, 113 a, and 113 b inthe frame computed using the preset image-forming parameters and theimage forming distance, and further details are hereby omitted.

Please refer to FIG. 5 in conjunction with FIG. 1 for clearlyunderstandings over the operation of the pointer position method for thehandheld pointer device 10. FIG. 5 shows a diagram illustrating themovement of the cursor displayed on the display apparatus 20 provided inaccordance to an exemplary embodiment of the present disclosure.

The display position of the cursor 23 a corresponds to the pointingcoordinate computed by the handheld pointer device 10 at time TA usingthe first tilt angle θ1. The display position of the cursor 23 bcorresponds to the pointing coordinate computed by the handheld pointerdevice 10 at time TB using the first tilt angle θ1. The display positionof the cursor 23 c corresponds to the pointing coordinate computed bythe handheld pointer device 10 at time TC using the first tilt angle θ1.At time TC, the handheld pointer device 10 updates the first tilt angleθ1 to the second tilt angle θ2. The handheld pointer device 10, at sametime computes the first pointing coordinate

and the second pointer coordinate

using the first tilt angle θ1 and the second tilt angle θ2, respectivelyto obtain the first displacement vector

. The display position of the cursor 23 d corresponds to the compensatedthird pointing coordinate

computed by the handheld pointer device 10 at time TD according to thefirst displacement vector

and the second tilt angle θ2. The display position of the cursor 25 acorresponds to the pointing coordinate directly computed by the handheldpointer device 10 at time TC using the second tilt angle θ2 without anycompensation. That is, when no compensation is applied to the pointingcoordinate computed after the handheld pointer device 10 updated thetilt angle used, the display position of the cursor will be at theposition corresponds to the cursor 25 a. More specifically, as shown inFIG. 5, the display position of cursor 23 c will suddenly jump to thedisplay position of cursor 25 a when no compensation is applied topointing coordinate after tilt angle adjustment, which degrades theuser's operability.

Therefore, by gradually compensating pointing coordinates computed aftertilt angle update according to the displacement generated after tiltangle update using the method described in the instant embodiment duringthe cursor position computation, and positioning the cursor at thedisplay position of the cursor 23 d, which is a distance d from thedisplay position of the cursor 25 a without calibration andcompensation, effectively resolves the cursor jumping issue.

In short, the handheld pointer device 10 of the instant embodiment isoperable to determine whether or not to compensate the pointingcoordinates after updated the first tilt angle θ1 to the second tiltangle θ2 (e.g., whether cursor jumping issue is noticeable to the user).Moreover, when the handheld pointer device 10 determines to compensatethe pointing coordinates computed after tilt angle update, the handheldpointer device 10 compensates the pointing coordinates according to thedisplacement generated after the handheld pointer device 10 updates thefirst tilt angle θ1 to the second tilt angle θ2.

To increase the cursor control precision and improve the user'soperability, the instant embodiment further provides a cursor positioncalibration algorithm. The cursor position calibration algorithm cancause the cursor controlled to translate smoothly from the currentmoving path to the movement path that corresponds to the actual movementpath of the handheld pointer device 10 after the tilt angle updatewithin a preset calibration time or preset number of calibration. Suchthat the occurrence of the cursor jumping from one place to another canbe prevented while and the directivity of the handheld pointer device 10can be maintained.

Details on the implementation of the cursor position calibrationalgorithm are provided in the following paragraphs. Please refer to FIG.6 and FIG. 7 in conjunction with FIG. 2. FIG. 6 shows a flowchartdiagram illustrating a method for calibrating the cursor position afterthe tilt angle update provided in accordance to an exemplary embodimentof the present disclosure. FIG. 7 shows a diagram illustrating themovement of the cursor displayed on the display apparatus along with themovement of a handheld pointer device provided in accordance to anexemplary embodiment of the present disclosure.

In Step S601, when the processing unit 13 updates the first tilt angleθ1 to the second tilt angle θ2, the processing unit 13 initiates acursor position calibration program and causes the handheld pointerdevice 10 to operate in a cursor calibration mode.

In Step S603, the processing unit 13 sets the number of calibrations asN, a compensation vector as C and a calibration coordinate p_(c) . Thecalibration coordinate

herein is the pointing coordinate that requires compensation, such asthe third pointing coordinate

computed based on the image position of the reference point in thesecond frame F2 and the second tilt angle θ2. The processing unit 13stores N, C, and the calibration coordinate

in the memory unit 15.

More specifically, the processing unit 13 determines whether the firstdisplacement vector

is greater than a second predetermined threshold. When the processingunit 13 determines that the first displacement vector

is greater than the second predetermined threshold, the processing unit13 operatively sets N equal to the first displacement vector

divided by C wherein C is a predetermined compensation value. On thecontrary, when the processing unit 13 determines that the firstdisplacement vector

is less than the second predetermined threshold, the processing unit 13operatively sets C equal to the first displacement vector

divided by N wherein N is a predetermined number of calibrations.

It worth to note that the aforementioned first predetermined thresholdand the second predetermined threshold may be configured to be the sameor different depend upon the practical operational requirements of thehandheld pointer device 10 and/or the type of the software applicationexecuted on the display apparatus 20.

Briefly, when the first displacement vector

is determined to be greater than the second predetermined threshold,indicates that the angle difference is relative large and requires alarger compensation vector, the processing unit 13 automatically selectsthe constant compensation method and gradually compensates pointingcoordinates computed after tilt angle update to avoid the occurrence ofcursor jumping negatively affecting the user operation. When determinesthat the first displacement vector

is less than the second predetermined threshold, indicates that theangle difference is relative small, the processing unit 13 quicklycompensates and corrects the pointing coordinates computed within thepreset number of calibrations.

Particularly, when the processing unit 13 determines to compute Caccording to the first displacement vector

and N, the processing unit 13 can use Eq. (6) to compute C,

$\begin{matrix}{{C = {\frac{\;}{N} = \frac{\left( {\overset{\_}{p\; 2\left( {\theta\; 2} \right)} - \overset{\_}{p\; 1\left( {\theta\; 1} \right)}} \right)}{N}}},} & (6)\end{matrix}$wherein C represents the compensation vector;

represents the first displacement vector;

represents the first pointing coordinate;

represents the second pointing coordinate; N represents the number ofcalibrations and N is a constant value. According to Eq. (6), the largerthe N is, the smaller the C is per each calibration; the smaller the Nis, the larger the C is per each calibration.

In one embodiment, the processing unit 13 may set N according to theframe capturing rate or the preset calibration time configured by theuser via the input unit 14. For instance, when the user configures thehandheld pointer device 10 to complete the cursor position calibrationprogram within 5 frames based on the frame capturing rate, theprocessing unit 13 sets N to be 5 and computes C according to N and thefirst displacement vector

. For another instance, when the user configures the preset calibrationtime to be 5 seconds (i.e., causes the handheld pointer device 10 tocomplete the cursor position calibration program within 5 seconds) andconfigures the frame capturing rate to be 5 frames per second, theprocessing unit 13 operatively sets N to be 25 and computes C accordingto N and the first displacement vector

.

On the other hand, when the processing unit 13 determines to compute Naccording to the first displacement vector

and C, the processing unit 13 can use Eq. (7) to compute N,

$\begin{matrix}{N = {\frac{\overset{\_}{S1}}{C} = \frac{\left( {\overset{\_}{p\; 2\left( {\theta\; 2} \right)} - \overset{\_}{p\; 1\left( {\theta\; 1} \right)}} \right)}{C}}} & (7)\end{matrix}$wherein C represents the compensation vector and C is a constant value;

represents the first displacement vector;

represents the first pointing coordinate;

represents the second pointing coordinate; N represents the number ofcalibrations. According to Eq. (7), the larger the C is, the smaller theN is; the smaller the C is, the larger the N is.

In one embodiment, the processing unit 13 can configure C according tothe resolution of the display apparatus 20 provided by the user via theinput unit 14. For example, when the user configures the handheldpointer device 10 to correct one-degree difference per each calibrationin accordance to the resolution of the display apparatus 20, and eachdegree corresponds to three pixel, the processing unit 13 operativelysets C to be 3 and computes N according to C and the first displacementvector

.

The user of the handheld pointer device 10 as described may alsoconfigure N and C based on the accuracy or precision needed by thesoftware application executed on the display apparatus 20 through theuser interface provided by the input unit 14.

In Step S605, the processing unit 13 determines whether to update thesecond tilt angle θ2 to a third tilt angle θ3. When the processing unit13 determines to update the second tilt angle θ2 to the third tilt angleθ3, the processing unit 13 executes Step S607; otherwise, the processingunit 13 executes Step S611.

In Step S607, the processing unit 13 computes a second displacementvector

generated due to the instant rotation of the handheld pointer device 10.Specifically, the processing unit 13 drives the image capturing unit 11to capture and generates a third frame F3. The processing unit 13computes a fourth pointing coordinate

and a fifth pointing coordinate

using the second tilt angle θ2 and the third tilt angle θ3,respectively, in coordination with the image position of the referencepoint formed in the third frame F3. The processing unit 13 subsequentlycomputes the second displacement vector

according to the fourth pointing coordinate

and the fifth pointing coordinate

. The third frame F3 is captured and generated at a later time than thesecond frame F2.

In other words, during the execution of cursor position calibrationprogram, the processing unit 13 operatively determines whether thehandheld pointer device 10 has generated new rotation angle under user'soperation, and correspondingly compensates the cursor position computedaccording to the displacement generated after updated the second tiltangle θ2 to the third tilt angle θ3, thereby improves the directivity ofthe handheld pointer device 10 and at same time resolves the cursorjumping issue.

In Step S609, when the processing unit 13 determines that the secondtilt angle θ2 has updated to the third tilt angle θ3, the processingunit 13 computes the sum of the calibration coordinate

, the second displacement vector

, and C to generate a compensated pointing coordinate

, e.g., the compensated third pointing coordinate

. Particularly, the compensated pointing coordinate

is computed using Eq. (8),

_ = + C = p 3 ⁡ ( θ2 ) + ( p 2 ⁡ ( θ2 ) - p 1 ⁡ ( θ1 ) + ( p 5 ⁡ ( θ3 ) - p4 ⁡ ( θ2 ) ) N , ( 8 )wherein

represents the compensated pointing coordinate;

represent calibration coordinate; C represents the compensation vector;

represents the first pointing coordinate;

represents the second pointing coordinate;

represents the third pointing coordinate;

represents the fourth pointing coordinate;

represents the fifth pointing coordinate; N represents the number ofcalibrations.

In Step S611, when the processing unit 13 determines that second tiltangle θ2 has not been updated, i.e., no tilt angle update operation hasbeen executed, the processing unit 13 computes the sum of thecalibration coordinate

and C to generate the compensated pointing coordinate

, e.g., the compensated third pointing coordinate

. Particularly, the compensated pointing coordinate

is computed using Eq. (9),

$\begin{matrix}{{= {{+ C} = {{p_{3}({\theta 2})} + \frac{\left( {{p_{2}({\theta 2})} - {p_{1}({\theta 1})}} \right)}{N}}}},} & (9)\end{matrix}$wherein

represents the compensated pointing coordinate;

represent calibration coordinate; C represents the compensation vector;

represents the first pointing coordinate;

represents the second pointing coordinate;

represents the third pointing coordinate; N represents the number ofcalibrations.

In Step S613, the processing unit 13 generates and outputs the cursorparameter for controlling the display position of the cursor on thedisplay apparatus 20 according to the compensated pointing coordinate

computed. The processing unit 13 drives the communication unit 16 tooutput the cursor parameter to the display apparatus 20 and causes thecursor to smoothly translate a distance d1 to the target position (i.e.,the display position of the cursor 33 b shown in FIG. 7) from thecurrent cursor position (i.e., the display position of the cursor 33 ashown in FIG. 7). The display position of the cursor 33 a corresponds tothe pointing coordinate computed by the handheld pointer device 10 usingthe first tilt angle θ1. The display position of the cursor 35 acorresponds to the pointing coordinate computed by the handheld pointerdevice 10 using the second tilt angle θ2.

In Step S615, the processing unit 13 sets the calibration coordinate

to be the newly computed pointing coordinate e.g., a sixth pointingcoordinate. The sixth pointing coordinate is computed according to imageposition of the reference point formed in a forth frame F4 using thesecond tilt angle θ2 or the third tilt angle θ3 (e.g., when the handheldpointer device 10 updated the second tilt angle θ2 to the third tiltangle θ3). In Step S617, the processing unit 13 executes N−1 (i.e.decrement the number of calibrations by one). The processing unit 13stores the calibration coordinate

and the number of calibrations after decremented by one in the memoryunit 15. In Step S619, the processing unit 13 determines whether N isequal to zero, i.e., whether the cursor position calibration program hasbeen completed.

When the processing unit 13 determines that N is equal to zero, i.e.,the cursor position calibration program has been completed, theprocessing unit 13 executes S621. Conversely, when the processing unit13 determines that N is not equal to zero, i.e., the cursor positioncalibration program has not been completed, the processing unit 13returns to Step S605. Specifically, the processing unit 13 drives theimage capturing unit 11 to capture a fifth frame F5 and performs stepsof computing a seventh pointing coordinate of the handheld pointerdevice 10 relative to the reference point according to the imageposition of the reference point formed in the fifth frame F5 and thesecond tilt angle θ2 or the third tilt angle θ3, setting the seventhpointing coordinate as the calibration coordinate, and computing thecompensated pointing coordinate based on the calibration coordinate andC. So that, the cursor displayed on the display apparatus 20 translatesor moves a distance d2 from the display position of cursor 33 b to thedisplay position of cursor 33 c as illustrated in FIG. 7.

Thereafter, the processing unit 13 re-executes Steps S605˜S619 andsequentially captures N−2 frames (not shown) for continue to compensatethe pointing coordinates computed and compute the cursor positionaccordingly, until N is equal to zero.

When the processing unit 13 completed the cursor position calibrationprogram, as show in FIG. 7, the cursor displayed om the displayapparatus 20 smoothly moves N times from the display position thatcorresponds to the first pointing coordinate

(e.g., the display position of the cursor 33 a) to the positioncurrently pointed by the handheld pointer device 10. More specifically,the cursor displayed on the display apparatus 20 is translated smoothlyfrom the display position (i.e., the display position of the cursor 33a) that corresponds to the first pointing coordinate

to the display position (i.e., the display position of the cursor 33N)that corresponds to the position currently pointed by the handheldpointer device 10 relative to the display apparatus 20 in accordance tothe distances d1, d2, d3, . . . , do computed after the Nth frame

In Step S621, the processing unit 13 computes the cursor position in thesubsequent movement of the handheld pointer device 10 according to theimage position of the reference point formed in one of the framescaptured along with the tilt angle presently used in cursor positioncomputation, so as to improves the accuracy in cursor control operation.

It is worth to note that, whenever the handheld pointer device 10updated the tilt angle thereof during the cursor position calibration,the processing unit 13 accumulates the displacement generated andcorrespondingly adjusts the amount of compensation applied, i.e.,adjusting C, for maintaining the directivity of the handheld pointerdevice 10. The processing unit 13 further operatively determines whetherto incorporate the displacement generated after tilt angle update intopointing coordinate compensation computation or not according to angledifference before and after the tilt angle update and/or the magnitudeof the displacement vector generated after the tilt angle update.

Additionally, the processing unit 13 may also constantly communicatewith the display apparatus 20 via the communication unit 16 during theoperation of the handheld pointer device 10, so as to obtain informationassociated with the software application executed on the displayapparatus 20 including but not limited to the type and the executionprogress of the software application, the frame refreshing rate, and theresolution required by the display apparatus 20 in the execution of thesoftware application. The processing unit 13 can operatively determinewhether or not to execute the cursor position calibration program aswell as configuring the calibration parameters for the cursor positioncalibration program according to the information obtained from thedisplay apparatus. The calibration parameters for the cursor positioncalibration program in the instant embodiment includes but not limitedto the predetermined threshold (such as the first and the secondpredetermined thresholds), the preset angle, the number of calibrations,the calibration time, and the amount of compensation in eachcalibration.

In practice, the pointer positioning method of FIG. 3 and the method ofcalibrating the cursor position after the tilt angle update can beimplemented by writing the corresponding program codes into theprocessing unit 13 (such as microcontroller or an embedded controller)via firmware design and executed by the processing unit 13 during theoperation of the handheld pointer device 10, however the presentdisclosure is not limited thereto.

FIG. 3 is merely used for illustrating a pointer positioning method forthe handheld pointer device 10, and the present disclosure is notlimited thereto. Similarly, FIG. 6 is merely used for illustrating animplementation method of the cursor position calibration algorithm andshall not be used to limit the present disclosure. FIG. 4A˜FIG. 4D aremerely used to illustrate the computation of pointing coordinates andthe relationship between the operating area (i.e., the display area) ofthe display apparatus 20 and the center of the image sensing array ofthe image capturing unit 11 (i.e. the center pointer “+”) and should notbe used to limit the present disclosure. FIG. 5 and FIG. 7 are merelyused to illustrate the operation of the handheld pointer device 10 andthe pointer positioning method in coordination with FIG. 3 and FIG. 5,respectively and the present disclosure is not limited thereto.

(Another Exemplary Embodiment of a Handheld Pointer Device)

From the aforementioned exemplary embodiments, the present disclosurecan generalize another pointer positioning method for the aforementionedhandheld pointer device of the interactive system. Please refer to FIG.8 in conjunction with FIG. 1 and FIG. 2. FIG. 8 shows a flowchartdiagram illustrating a pointer positioning method provided in accordanceto another exemplary embodiment of the present disclosure. The pointerpositioning method of FIG. 8 can be implemented by programming theprocessing unit 13 via firmware design and executed by the processingunit 13 during the operation of the handheld pointer device 10.

In Step S801, the processing unit 13 of the handheld pointer device 10determines whether to update a first tilt angle presently used in thecursor position computation to a second tilt angle. When the processingunit 13 determined to update the first tilt angle presently used in thecursor position computation to a second tilt angle, the processing unit13 executes Step S803; otherwise, the processing unit 13 returns to StepS801.

Specifically, the processing unit 13 operatively determines whether thereference point 21 has substantially moved according to a plurality offrames generated by the image capturing unit 21, wherein the imagecapturing unit 21 captures images corresponding to the position of thereference point 21 and sequentially generates the plurality of frames.The processing unit 13 of the handheld pointer device 10 determines toupdate the first tilt angle to the second tilt angle upon determinedthat the reference point 21 has not substantially moved i.e., thehandheld pointer device 10 is at rest.

Incidentally, in other embodiment, the handheld pointer device 10 mayalso determine whether to update the first tilt angle to the second tiltangle by determining whether the pointing coordinate computed based onthe image position of the reference point 21 in frames captured hassubstantially moved. For instance, when the processing unit 13 of thehandheld pointer device 10 determines that pointing coordinate computedbased on the position of the reference point 21 has not substantiallymoved, the processing unit 13 updates the first tilt angle presentlyused in the cursor position computation to the second tilt angle.

In Step S803, the processing unit 13 operatively drives the imagecapturing unit 11 to capture and generate a first frame containing thereference point 21 after the processing unit 13 updated the first titangle presently used in the cursor position computation to the secondtilt angle.

In Step S805, the processing unit 13 computes an angle differencebetween the first tilt angle and the second tilt angle.

In Step S807, the processing unit 13 determines whether the angledifference between the first tilt angle and the second tilt angle issmaller than a preset angle, e.g., 20 degrees. When the angle differencebetween the first tilt angle and the second tilt angle is computed to besmaller than the preset angle, the processing unit 13 executes StepS809; otherwise, the processing unit 13 executes Step S811.

In Step S809, the processing unit 13 drives the image capturing unit 11to capture and generate a second frame containing the reference point21. The second frame is captured and generated at a later time than thefirst frame. The processing unit 13 directly computes the cursorposition of the cursor 23 based on the image position of the referencepoint formed in the second frame and the second tilt angle. That is tosay, when the angle difference between the first tilt angle and thesecond tilt angle is computed to be smaller than the preset angle, e.g.,20 degrees, the processing unit 13 determines that the cursor jumpingphenomenon is not noticeable to human eye and computes the cursorposition of the cursor 23 directly based on the image position of thereference point formed in the second frame without applying anycompensation.

In Step S811, the processing unit 13 computes a first pointingcoordinate according to the image position of the reference point 21formed in the first frame and the first tilt angle. In Step S813, theprocessing unit 13 computes a second pointing coordinate according tothe image position of the reference point 21 formed in the first frameand the second tilt angle. The processing unit 13 stores the first andthe second pointing coordinates in the memory unit 15. Algorithm usedfor computing the first and the second pointing coordinates areessentially the same as described in the aforementioned embodiment, andfurther descriptions are hereby omitted.

In Step S815, the processing unit 13 computes the cursor position of thecursor 23 in the subsequent movement of the handheld pointer device 10on the basis of the offset between the first pointing coordinate and thesecond pointing coordinate generated after the first tilt angle isupdated to the second tilt angle along with the movement of the handheldpointer device 10.

In Step S817, the processing unit 13 generates a cursor parameter forcontrolling the display position of the cursor 23 on the displayapparatus 20 according to the computational result from either Step S809or Step S815. The processing unit 13 drives the communication unit 16 towirelessly transmit the cursor parameter to the display apparatus 20 forcorrespondingly controlling the display position of the cursor 23 on thedisplay apparatus 20.

FIG. 8 is merely used for illustrating another pointer positioningmethod for the handheld pointer device and the present disclosure is notlimited thereto. Those skilled in art should be able to select themethod for determining whether the handheld pointer device 10 is atrest, such as by analyzing the displacement, the velocity, or theacceleration associated with the image position of the reference point21 formed in a set of consecutive frames captured, or by analyzingdisplacement information at least two pointing coordinates which iscomputed based on the image position of the reference point in a set ofconsecutive frames captured, or by analyzing the magnitude of anacceleration vector generated based on multiple accelerations of thehandheld pointer device 10 detected over multiple axes, so as todetermine whether to cause the handheld pointer device to update thefirst tilt angle to the second tilt angle according to practicaloperation requirements of the handheld pointer device 10. Moreover, themethod for calibrating the cursor position after the tilt angle updatedescribed in the aforementioned embodiment can be executed during theexecution of Step S815.

(Another Exemplary Embodiment of a Handheld Pointer Device)

From the aforementioned exemplary embodiments, the present disclosurecan generalize another pointer positioning method for the aforementionedhandheld pointer device of the interactive system. Please refer to FIG.9 in conjunction with FIG. 1 and FIG. 2. FIG. 9 shows a flowchartdiagram illustrating a pointer positioning method provided in accordanceto another exemplary embodiment of the present disclosure. The pointerpositioning method of FIG. 9 can be implemented by programming theprocessing unit 13 via firmware design and executed by the processingunit 13 during the operation of the handheld pointer device 10.

In Step S901, the processing unit 13 of the handheld pointer device 10updated a first tilt angle presently used in the cursor positioncomputation to a second tilt angle at a first time interval. To put itconcretely, the processing unit 13 operatively reads accelerations ofthe handheld pointer device 10 over multiple axes (e.g., X-axis, Y-axis,and Z-axis) detected by the accelerometer unit 12. Particularly, theaccelerometer unit 12 operatively generates an acceleration vectoraccording to the accelerations of the handheld pointer device 10detected and generates an acceleration vector accordingly to theprocessing unit 13 in signal form (i.e., the acceleration sensingsignal). The processing unit 13 then computes the instant tilt angle ofthe handheld pointer device 10 using Eqs. (1)˜(3) with the accelerationvector of the handheld pointer device 10 and the included anglescomputed between any two axes and correspondingly updates the first tiltangle presently used to the second tilt angle.

In the first time interval, the processing unit 13 drives the imagecapturing unit 11 to capture and generate a first frame containing thereference point 21.

In Step S903, the processing unit 13 computes a first pointingcoordinate and a second point coordinate at the first time intervalusing the first tilt angle and the second tilt angle, respectively, incoordination with the image position of the reference point 21 formed inthe first frame.

At the same time, the processing unit 13 computes the cursor positionaccording to the first pointing coordinate and generates the cursorparameter accordingly for controlling the display position of the cursor23 on the display apparatus 20. The processing unit 13 drives thecommunication unit 16 to wirelessly transmit the cursor parameter to thedisplay apparatus 20 at the first time interval and causes the cursor 23to be fixed at the first pointing coordinate. Cursor positioncomputation and positioning methods are essentially the same asdescribed in the aforementioned embodiment, and further details arehereby omitted.

In Step S905, the processing unit 13 computes a first displacementvector between the first pointing coordinates and the second pointingcoordinate.

In Step S907, the processing unit 13 generates a compensating vector perunit displacement according to the first displacement vector. In oneembodiment, the processing unit 13 operatively determines whether tocompute the compensating vector per unit displacement based on apredetermined number of calibrations or a constant amount ofcompensation per calibration according to an angle difference betweenthe first and the second tilt angles and/or the first displacementvector. When the processing unit 13 determines to complete the pointingcoordinate calibration within the predetermined number of calibration,the processing unit 13 computes the compensating vector per unitdisplacement by dividing a predetermined number of calibration or acalibration time from the first displacement vector computed. On thecontrary, the processing unit 13 may set the compensating vector perunit displacement based on the amount of compensation per calibrationand compute the number of calibrations by dividing the compensatingvector per unit displacement from the first displacement vector.

It is worth to note that in on embodiment, the processing unit 13 mayset the number of calibration or the calibration time according to aframe capturing rate or a predetermined time. In another embodiment, theprocessing unit 13 can also set the number of calibration, thecalibration time, and the amount of compensation per each calibrationbased on the type of software application, e.g., type of game software,executed by the display apparatus 20. Calibration parametersconfiguration method has been detailed explained in above describedembodiments, and further descriptions are hereby omitted.

In Step S909, the processing unit 13 drives the image capturing unit 11to capture and generate a second frame containing the reference point 21in a second time interval. The processing unit 13 further computes athird pointing coordinate according to the image position of thereference point formed in the second frame and the second tilt angle.The second time interval occurs after the first time interval. That is,the second frame is captured at a later time than the first frame.

In Step S911, the processing unit 13 initiates a cursor positioncalibration program in the second time interval and computes the cursorposition according to the third pointing coordinate and the compensatingvector per unit displacement. Particularly, the processing unit 13implements the cursor position calibration method depicted in FIG. 6 andcalibrates the third pointing coordinate.

In Step S913, the processing unit 13 computes the display position ofthe cursor 23 on the display apparatus 20 at the second time interval.More specifically, the processing unit 13 computes and generates thecursor parameter according to the third pointing coordinate forcontrolling the display position of the cursor 23 on the displayapparatus 20. The processing unit 13 further drives the communicationunit 16 to wirelessly transmit the cursor parameter to the displayapparatus 20 to control the display position of the cursor 23 on thedisplay apparatus 20 at the second time interval.

In Step S915, the processing unit 13 drives the image capturing unit 11to capture and generate a third frame containing the reference point ata third time interval. The processing unit 13 then computes a fourthpointing coordinate according to the image position of the referencepoint 21 formed in the third frame and the second tilt angle. The thirdtime interval occurs after the second time interval. That is, the thirdframe is captured at a later time than the second frame. The timeinterval between the second and third time interval can be designedbased on the preset number of calibrations or the preset calibrationtime configured.

In Step S917, the processing unit 13 computes the display position ofthe cursor 23 on the display apparatus 20 at the third time intervalaccording to the fourth pointing coordinate. In Step S919, theprocessing unit 13 generates the cursor parameter for controlling thedisplay position of the cursor 23 on the display apparatus 20. Theprocessing unit 13 further drives the communication unit 16 towirelessly transmit the cursor parameter to the display apparatus 20 tocontrol the display position of the cursor 23 on the display apparatus20 at the third time interval.

It is worth to note that, during the second time interval, theprocessing unit 13 may determine whether to calibrate and compensatepointing coordinates computed using the second tilt angle according tothe first displacement vector and/or the angle difference between thefirst and the second tilt angles. In particular, when the firstdisplacement vector between the first and the second pointing coordinateis less than a first predetermined threshold (e.g., 5 pixels) and/or theangle difference between the first and the second tilt angle is smallerthan a preset angle (e.g., 20 degrees), the processing unit 13 does notinitiate the cursor position calibration program and computes the cursorposition directly according to the third pointing coordinate.Thereafter, the processing unit 13 generates the cursor parameter forcontrolling the display position of the cursor 23 on the displayapparatus 20, accordingly.

Additionally, the processing unit 13 in the instant embodiment canfurther store the first and the second tilt angles, the first pointingcoordinate, the second pointing coordinate, the third pointingcoordinate, the first displacement vector, the compensating vector perunit displacement in the memory unit 15. Those skilled in the art shouldbe able to program the processing unit 13 to utilize algorithm fordetermining whether to update the first tilt angle to the second tiltangle in the first time interval via firmware design. That is, theprocessing unit 13 can be programmed with necessary program codes todetermine whether the handheld pointer device 10 is in motion or at reste.g., whether the reference point 21 or the pointing coordinateassociated with the position of the reference point 21 has substantiallymoved, to determine whether to update the tilt angle presently used bythe handheld pointer device 10 in the cursor position computation.

It should be noted that FIG. 9 is merely used to describe a pointerpositioning method for the handheld pointer device 10 and the presentdisclosure is not limited thereto.

Additionally, the present disclosure also discloses a non-transitorycomputer-readable media for storing the computer executable programcodes of the pointer position methods depicted in FIG. 3, FIG. 8, andFIG. 9 as well as the cursor position calibration method depicted inFIG. 6. The non-transitory computer-readable media may be a floppy disk,a hard disk, a compact disk (CD), a flash drive, a magnetic tape,accessible online storage database or any type of storage media havingsimilar functionality known to those skilled in the art.

In summary, exemplary embodiments of the present disclosure provide ahandheld pointer device and a pointer positioning method thereof. Thehandheld pointer device and the pointer method thereof area can beadapted for controlling the operation of a cursor displayed on a displayapparatus. The pointer positioning method disclosed operativelycalibrates and corrects pointing coordinates in the computation ofcursor position after the handheld pointer device updated the tilt anglethereof so that the display position of the cursor can be adjusted togradually move to the correct position which the handheld pointer deviceactually point toward within a preset calibration time or a presetnumber of calibration. Accordingly, the issue of the cursor suddenlyjump from one place to another after the tilt angle has updated can beeffectively avoid. Thereby, enhance the stability of the handheldpointer device and at the same time, the operation convenience and ofthe user.

Moreover, the pointer positioning method enables the handheld pointerdevice to actively determine whether to calibrate the pointingcoordinate computed using the updated tilt angle and the associatedcalibration and compensation method based on the degree of precisionrequired by the type of software application executed on the displayapparatus and the resolution of the display apparatus, thereby enhancesthe practicality and applicability of the handheld pointer device.

The above-mentioned descriptions represent merely the exemplaryembodiment of the present disclosure, without any intention to limit thescope of the present disclosure thereto. Various equivalent changes,alternations or modifications based on the claims of present disclosureare all consequently viewed as being embraced by the scope of thepresent disclosure.

What is claimed is:
 1. A pointer positioning method of a handheldpointer device, comprising: capturing a first frame containing areference point when the handheld pointer device updates a first tiltangle presently used to a second tilt angle; computing a first pointingcoordinate according to the image position of the reference point formedin the first frame and the first tilt angle; computing a second pointingcoordinate according to the image position of the reference point formedin the first frame and the second tilt angle; capturing a second framecontaining the reference point and computing a third pointing coordinateaccording to the image position of the reference point formed in thesecond frame and the second tilt angle; and computing a cursor positionaccording to the first pointing coordinate, the second pointingcoordinate, and the third pointing coordinate and correspondinglygenerating a cursor parameter controlling a display position of a cursoron a display apparatus, wherein the step of computing the cursorposition comprises: generating the cursor parameter controlling thedisplay position of the cursor on the display apparatus according to thethird pointing coordinate when a first displacement vector between thefirst and the second pointing coordinates is computed to be less than afirst predetermined threshold; computing the cursor position accordingto the first displacement vector and the third pointing coordinate whenthe first displacement vector between the first and the second pointingcoordinates is greater than the first predetermined threshold; andfurther comprising: a) setting a number of calibrations as N, acompensation vector as C and a calibration coordinate, wherein thecalibration coordinate is the third pointing coordinate; b) determiningwhether the first displacement vector is greater than a secondpredetermined threshold; c) setting N equal to the first displacementvector divided by C when determines that the first displacement vectoris greater than the second predetermined threshold, wherein C is apredetermined compensation value; setting C equal to the firstdisplacement vector divided by N when determines that the firstdisplacement vector is less than the second predetermined threshold,wherein N is a predetermined number of calibrations; d) computing thesum of the calibration coordinate and C to generate a compensatedpointing coordinate; e) generating the cursor parameter tocorrespondingly control the display position of the cursor on thedisplay apparatus according to the compensated pointing coordinate; f)executing N−1 and determining whether N is equal to zero; and g) settinga fourth pointing coordinate to be the calibration coordinate andreturning to step d) upon determined that N is not equal to zero;wherein the forth pointing coordinate is computed according to the imageposition of the reference point formed in a third frame and the secondtilt angle.
 2. The pointer positioning method according to claim 1,wherein the step of computing the cursor position comprises: generatingthe cursor parameter controlling the display position of the cursor onthe display apparatus according to the third pointing coordinate when anangle difference between the first and the second tilt angles iscomputed to be smaller than a preset angle.
 3. The pointer positioningmethod according to claim 2, wherein the preset angle is set accordingto the type of a software application executed on the display apparatus.4. The pointer positioning method according to claim 1, wherein the stepof computing the cursor position further comprises: h) when determinesthat N is equal to zero, causes the handheld pointer device to computethe cursor position in the subsequent movement of the handheld pointerdevice according to the image position of the reference point formed ina succeeding frame captured and the second tilt angle.
 5. The pointerpositioning method according to claim 1, wherein steps before the stepd) comprise: i) determining whether to update the second tilt angle to athird tilt angle; j) computing a second displacement vector generated asthe handheld pointer device rotates when determines that the handheldpointer device has updated the second tilt angle presently used to thethird tilt angle; and k) computing the sum of the calibrationcoordinate, the second displacement vector, and C to generate thecompensated pointing coordinate.
 6. The pointer positioning methodaccording to claim 1, wherein the predetermined number of calibrationsis set according to a frame capturing rate of the handheld pointerdevice used for capturing frames containing the reference point.
 7. Thepointer positioning method according to claim 6, wherein the framecapturing rate is configured by a user according to a preset calibrationtime.
 8. The pointer positioning method according to claim 1, whereinfirst predetermined threshold is set according to the type of a softwareapplication executed on the display apparatus.
 9. The pointerpositioning method according to claim 1, wherein the handheld pointerdevice operatively updates the first tilt angle presently used to thesecond tilt angle upon determined that the reference point has notsubstantially moved.
 10. The pointer positioning method according toclaim 9, wherein the handheld pointer device determines whether thereference point has substantially moved by determining whether the imageposition of the reference point formed in the consecutive frames hasmoved.
 11. The pointer positioning method according to claim 10, whereinthe handheld pointer device operatively updates the first tilt anglepresently used to the second tilt angle upon determined that theposition displacement computed between the image position of thereference point formed in any two consecutive frames captured by thehandheld pointer device is less than a predefined displacementthreshold.
 12. The pointer positioning method according to claim 10,wherein the handheld pointer device operatively updates the first tiltangle presently used to the second tilt angle upon determined that thevelocity computed between the image position of the reference pointformed in any two consecutive frames captured by the handheld pointerdevice is less than a predefined velocity threshold.
 13. The pointerpositioning method according to claim 1, wherein the handheld pointerdevice operatively updates the first tilt angle presently used to thesecond tilt angle upon determined that the magnitude of a accelerationvector of the handheld pointer device is equal to a gravitationalacceleration of the handheld pointer device, wherein the accelerationvector is generated by the handheld pointer device according toaccelerations of the handheld pointer device detected over the multipleaxes.
 14. The pointer positioning method according to claim 1, whereinthe handheld pointer device operatively updates the first tilt anglepresently used to the second tilt angle upon determined that thepointing coordinate, being computed based on the image position of thereference point formed in multiple consecutive frames using the firsttilt angle, has not substantially moved.
 15. A pointer positioningmethod of a handheld pointer device, comprising: capturing a first framecontaining a reference point when the handheld pointer device updates afirst tilt angle presently used to a second tilt angle; computing anangle difference between the first and the second tilt angles; computinga first pointing coordinate according to the image position of thereference point formed in the first frame and the first tilt angle whenthe angle difference is larger than a preset angle; computing a secondpointing coordinate according to the image position of the referencepoint formed in the first frame and the second tilt angle; causing thehandheld pointer device to compute a cursor position of a cursor in thesubsequent movement of the handheld pointer device on the basis of afirst displacement vector between the first and the second pointingcoordinates along with the pointing coordinate generated responsive tothe movement of the handheld pointer device; wherein the step ofcomputing the cursor position comprises: a) setting a number ofcalibrations as N, a compensation vector as C and a calibrationcoordinate, wherein the calibration coordinate is a third pointingcoordinate computed according to the image position of the referencepoint formed in a second frame and the second tilt angle; b) determiningwhether the first displacement vector is larger than a predeterminedthreshold; c) setting N equal to the first displacement vector dividedby C when determines that the first displacement vector is greater thanthe predetermined threshold, wherein C is a predetermined compensationvalue; setting C equal to the first displacement vector divided by Nwhen determines that the first displacement vector is smaller than thepredetermined threshold, wherein N is a predetermined number ofcalibrations; d) computing the sum of the calibration coordinate and Cto generate a compensated pointing coordinate; e) generating the cursorparameter to correspondingly control the display position of the cursoron the display apparatus according to the compensated pointingcoordinate; f) executing N−1 and determining whether N is equal to zero;and setting a fourth pointing coordinate to be the calibrationcoordinate and returning to step d) upon determined that N is not equalto zero; wherein the forth pointing coordinate is computed according tothe image position of the reference point formed in a third frame andthe second tilt angle; and correspondingly generating a cursor parameterfor controlling a display position of the cursor on a display apparatus.16. The pointer positioning method according to claim 15, furthercomprising: computing the cursor position according to the imageposition of the reference point formed in the second frame and thesecond tilt angle, and generating the cursor parameter correspondinglycontrolling the display position of the cursor on the display apparatuswhen determines that the angle difference between the first and thesecond tilt angles is smaller than the preset angle, wherein the secondframe is captured and generated at a later time than the first frame.17. The pointer positioning method according to claim 15, wherein thestep of computing the cursor position further comprises: a) whendetermines that N is equal to zero, causes the handheld pointer deviceto compute the cursor position in the subsequent movement of thehandheld pointer device according to the image position of the referencepoint formed in a succeeding frame captured and the second tilt angle.18. The pointer positioning method according to claim 15, wherein thepreset angle is set according to the type of a software applicationexecuted on the display apparatus.
 19. The pointer positioning methodaccording to claim 15, wherein the handheld pointer device operativelyupdates the first tilt angle presently used to the second tilt angleupon determined that the image position of the reference point formed inthe consecutive frames have not substantially moved.
 20. The pointerpositioning method according to claim 15, wherein the handheld pointerdevice operatively updates the first tilt angle presently used to thesecond tilt angle upon determined that the pointing coordinates, beingcomputed based on the image position of the reference point formed inmultiple consecutive frames using the first tilt angle, has notsubstantially moved.
 21. A pointer positioning method of a handheldpointer device, comprising: causing the handheld pointer device toupdate a first tilt angle presently used to a second tilt angle at afirst time interval; causing the handheld pointer device to compute afirst pointing coordinate and a second point coordinate according to theimage position of the reference point formed in a first frame using thefirst tilt angle and the second tilt angle in the first time interval,respectively; causing the handheld pointer device to compute a thirdpointing coordinate according to the image position of the referencepoint formed in a second frame and the second tilt angle at a secondtime interval, wherein the second time interval occurs after the firsttime interval; and computing the cursor position of a cursor accordingto the first pointing coordinate, the second pointing coordinate, andthe third pointing coordinate to correspondingly generate a cursorparameter for controlling a display position of the cursor on a displayapparatus; and computing the cursor position for controlling the displayposition of the cursor on the display apparatus according to the thirdpointing coordinate at the second time interval when a firstdisplacement vector between the first and the second pointingcoordinates is computed to be less than a first predetermined threshold;wherein the step of computing the cursor position comprises: a) settinga number of calibrations as N, a compensation vector as C and acalibration coordinate, wherein the calibration coordinate is set as thethird pointing coordinate; b) determining whether the first displacementvector is greater than a second predetermined threshold; c) setting Nequal to the first displacement vector divided by C when determines thatthe first displacement vector is greater than the second predeterminedthreshold, wherein C is a predetermined compensation value; setting Cequal to the first displacement vector divided by N when determines thatthe first displacement vector is less than the second predeterminedthreshold, wherein N is a predetermined number of calibrations; d)computing the sum of the calibration coordinate and C to generate acompensated pointing coordinate; e) generating the cursor parameter tocorrespondingly control the display position of the cursor on thedisplay apparatus according to the compensated pointing coordinate; f)executing N−1 and determining whether N is equal to zero; and g) settinga fourth pointing coordinate to be the calibration coordinate andreturning to step d) upon determined that N is not equal to zero. 22.The pointer positioning method according to claim 21, furthercomprising: computing the first displacement vector between the firstand the second pointing coordinates at the first time interval;generating the compensating vector per unit displacement according tothe first displacement vector; and computing the third pointingcoordinate using the compensating vector per unit displacement and thesecond tilt angle at the second time interval.
 23. The pointerpositioning method according to claim 21, wherein the firstpredetermined threshold is set according to the type of a softwareapplication executed on the display apparatus.
 24. The pointerpositioning method according to claim 21, further comprising: computingthe cursor position at the first time interval according to the firstpointing coordinate; and generating the cursor parameter according tothe cursor position computed for controlling the display position of thecursor at the first time interval.
 25. The pointer positioning methodaccording to claim 21, further comprising: computing the fourth pointingcoordinate at a third time interval according to the image position ofthe reference point formed in a third frame captured and the second tiltangle; and generating the cursor parameter according to the fourthpointing coordinate for controlling the display position of the cursoron the display apparatus at the third time interval.
 26. The pointerpositioning method according to claim 21, wherein the step of computingthe cursor position comprises: determining whether an angle differencebetween the first and the second tilt angle computed is smaller than apreset angle; and computing the cursor position according to the thirdpointing coordinate and generating the cursor parameter forcorrespondingly controlling the display position of the cursor on thedisplay apparatus at the second time interval upon determined that theangle difference is smaller than the preset angle.
 27. The pointerpositioning method according to claim 26, wherein the preset angle isset according to the type of a software application executed on thedisplay apparatus.
 28. A handheld pointer device, comprising: an imagecapturing unit, configured to operatively capture a plurality of imagescorresponding to the position of a reference point and sequentiallygenerate a plurality of frames; an accelerometer unit, configured todetect a plurality of accelerations of the handheld pointer device overmultiple axes and generating an acceleration vector; and a processingunit coupled to the image capturing unit and the accelerometer unit, theprocessing unit configured to operatively compute a cursor position of acursor according to the image positions of the reference points in theframes and a first tilt angle; wherein when the processing unit updatesthe first tilt angle presently used in cursor position computation to asecond tilt angle according to the plurality of accelerations detected,the processing unit operatively drives the image capturing unit tocapture a first frame containing the reference point to respectivelycompute a first pointing coordinate and a second pointing coordinateusing the first and the second tilt angles in coordination with thefirst frame, drives the image capturing unit to capture a second framecontaining the reference point thereafter, computes the cursor positionaccording to the image position of the reference frame in the secondframe, the first pointing coordinate, the second pointing coordinate,and generates a cursor parameter for correspondingly controlling adisplay position of the cursor on a display apparatus; wherein theprocessing unit computes the cursor position according to the imageposition of the reference point formed in one of the frames and thesecond tilt angle when the processing unit determines that a firstdisplacement vector between the first and the second pointingcoordinates is computed to be less than a first predetermined threshold;and the processing unit generates the first displacement vectoraccording to the first and the second pointing coordinates and generatesthe cursor parameter for correspondingly controlling the displayposition of the cursor on the display apparatus according to the imageposition of the reference point formed in the second frame, the firstdisplacement vector, and the second tilt angle; wherein the processingunit computes the cursor position by executing the following steps: a)setting a number of calibrations as N, a compensation vector as C and acalibration coordinate, wherein the calibration coordinate is a thirdpointing coordinate computed according the image position of thereference point in the second frame and the second tilt angle; b)determining whether the first displacement vector is greater than asecond predetermined threshold; c) setting N equal to the firstdisplacement vector divided by C when determines that the firstdisplacement vector is greater than the second predetermined threshold,wherein C is a predetermined compensation value; setting C equal to thefirst displacement vector divided by N when determines that the firstdisplacement vector is less than the second predetermined threshold,wherein N is a predetermined number of calibrations; d) computing thesum of the calibration coordinate and C to generate a compensatedpointing coordinate; e) generating the cursor parameter tocorrespondingly control the display position of the cursor on thedisplay apparatus according to the compensated pointing coordinate; f)executing N−1 and determining whether N is equal to zero; and g) settinga fourth pointing coordinate to be the calibration coordinate andreturning to step d) upon determined that N is not equal to zero;wherein the forth pointing coordinate is computed according to the imageposition of the reference point formed in a third frame and the secondtilt angle.
 29. The handheld pointer device according to claim 28,wherein the processing unit computes the cursor position according tothe image position of the reference point formed in one of the framesand the second tilt angle when the processing unit determines that anangle difference between the first and the second tilt angles is smallerthan a preset angle.
 30. The handheld pointer device according to claim28, wherein the step of computing the cursor position further comprises:h) when determines that N is equal to zero, causes the handheld pointerdevice to compute the cursor position in the subsequent movement of thehandheld pointer device according to the image positions of thereference point formed in a succeeding frame and the second tilt angle.31. The handheld pointer device according to claim 30, wherein theprocessing unit executes the following steps before executing step d):i) determining whether to cause the handheld pointer device to updatethe second tilt angle to a third tilt angle during the computation ofthe compensated pointing coordinate; j) computing a second displacementvector generated as the handheld pointer device rotates when determinesthat the handheld pointer device has updated the second tilt anglepresently used to the third tilt angle; and k) computing the sum of thecalibration coordinate, the second displacement vector and C to generatethe compensated pointing coordinate.
 32. The handheld pointer deviceaccording to claim 28, further comprising: an input unit coupled to theprocessing unit, configured for providing a user of the handheld pointerdevice to set N or C based on a frame capturing rate associated with thereference point.
 33. The handheld pointer device according to claim 28,further comprising: an input unit coupled to the processing unit,configured for providing a user of the handheld pointer device toconfigure a frame capturing rate for the reference point according to apreset calibration time and set N based on the frame capturing rate. 34.The handheld pointer device according to claim 28, wherein the handheldpointer device operatively updates the first tilt angle presently usedto the second tilt angle upon determined that the reference point hasnot substantially moved.
 35. The handheld pointer device according toclaim 34, wherein the processing unit operatively updates the first tiltangle presently used to the second tilt angle upon determined that theposition displacement computed between the image position of thereference point formed in any two consecutive frames captured is lessthan a predefined displacement threshold.
 36. The handheld pointerdevice according to claim 34, wherein the processing unit operativelyupdates the first tilt angle presently used to the second tilt angleupon determined that the velocity computed between the image position ofthe reference point formed in any two consecutive frames captured isless than a predefined a predefined velocity threshold.
 37. The handheldpointer device according to claim 28, wherein the processing unitoperatively updates the first tilt angle presently used to the secondtilt angle upon determined that the magnitude of the acceleration vectorof the handheld pointer device is equal to a gravitational accelerationof the handheld pointer device.
 38. The handheld pointer deviceaccording to claim 28, wherein the handheld pointer device operativelyupdates the first tilt angle presently used to the second tilt angleupon determined that the pointing coordinates computed based on theimage position of the reference point formed in multiple consecutiveframes using the first tilt angle have not substantially moved.
 39. Thehandheld pointer device according to claim 28, further comprising: acommunication unit, configured to operatively transmit the cursorparameter of the cursor to the display apparatus wirelessly.
 40. Thehandheld pointer device according to claim 28, wherein the accelerometerunit is an accelerometer or a gravitational sensor.